
package ch.hearc.coursJava.kitBase.tableau.equationOrdre2;

import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;

public class UseQuadraticLigneCommandeMap
	{

	/*------------------------------------------------------------------*\
	|*							Methodes Public							*|
	\*------------------------------------------------------------------*/

	/**
	 * <pre>
	 * args de type : a=1 b=-3 c=2
	 * Ordre a pas d'importance
	 * </pre>
	 */
	public static void main(String[] args)
		{
		Map<String, Double> mapCoefficiensValeur=toMapCoefficiensValeur(args);
		double[] tabCoefficients = toArray(mapCoefficiensValeur);
		double[] tabSolution = EquationOrdre2.solve(tabCoefficients);
		EquationOrdre2.afficher(tabSolution);
		}

	/*------------------------------------------------------------------*\
	|*							Methodes Private						*|
	\*------------------------------------------------------------------*/

	private static Map<String, Double> toMapCoefficiensValeur(String[] args)
		{
		Map<String, Double> mapCoefficiensValeur = new HashMap<String, Double>();
		for(String elem:args)
			{
			StringTokenizer parser = new StringTokenizer(elem, "=");
			String coefficient = parser.nextToken();
			Double value = Double.parseDouble(parser.nextToken());
			mapCoefficiensValeur.put(coefficient, value);
			}

		return mapCoefficiensValeur;
		}

	private static double[] toArray(Map<String, Double> mapCoefficiensValeur)
		{
		double[] tabCoefficients = new double[mapCoefficiensValeur.size()];

		tabCoefficients[0] = mapCoefficiensValeur.get("a");
		tabCoefficients[1] = mapCoefficiensValeur.get("b");
		tabCoefficients[2] = mapCoefficiensValeur.get("c");

		return tabCoefficients;
		}
	}
